import java.util.ArrayList;
import java.util.Iterator;


public class TablaVector {
		
		ArrayList<filaTVector> tablaVector;			
	
		public TablaVector(){
	
			tablaVector = new ArrayList<filaTVector>();
			
		}
		
		

		public boolean insertarTVector(int posicion , tipo tipo){
			boolean error=true;
			
			System.out.println("TVector: InsertarFila: "+posicion+" "+tipo);

				filaTVector fila = new filaTVector(posicion, tipo);
				tablaVector.add(fila);
				error = false;
			
			return error;
		}
		
		
		
		public boolean actualizarTVector(int posicion , tipo tipo){
			boolean error=true;
			System.out.println("TVector: ActualizarFila: "+posicion+" "+tipo);

			if (posicion+1 <= tablaVector.size()){
				tablaVector.get(posicion).tipo = tipo;
				error = false;
			}
			
			return error;
		}
		
		
		public boolean actualizarTVector(int posicion , tipo tipo, int desplazamiento){
			boolean error=true;
			System.out.println("TVector: ActualizarFila: "+posicion+" "+tipo);

			if (posicion+1 <= tablaVector.size()){
				tablaVector.get(posicion).tipo = tipo;
				tablaVector.get(posicion).desplazamiento = desplazamiento;
				error = false;
			}
			
			return error;
		}
		
		
		
		
		public tipo obtenerTipo (int posicion){
	
			return tablaVector.get(posicion).tipo;
			
		}



		public boolean eliminarFila(int posicion) {
			boolean error = true;
			
			
			
			
			
			
			return error;
		}



		public int actualizarDesplazamiento(int contador) {
			int contadorVector = contador;
			System.out.println("TVector: actualizarDesplazamiento");

			for (filaTVector elemento : tablaVector){
				System.out.println(elemento.posicion + " " + elemento.tipo);

					switch (elemento.tipo){
					case ENTERO: 
						elemento.desplazamiento = contadorVector;
						contadorVector = contadorVector + 8;
						break;
					case BOOL: 
						elemento.desplazamiento = contadorVector;
						contadorVector = contadorVector + 8;
						break;
					case STRING: 
						elemento.desplazamiento = contadorVector;
						contadorVector = contadorVector + 8;
						break;
					default:elemento.desplazamiento = contadorVector;
					contadorVector = contadorVector + 8; break;
				}
	
			}
			System.out.println("TVector: actualizarDesplazamiento devuelve "+ contadorVector);

			return contadorVector;
		}



		public int obtenerTotalDesplazamiento() {
			return tablaVector.get( tablaVector.size()-1 ).desplazamiento;
		}

		
	
}
